A conventional technique executes, at high speed, processing corresponding to a device in a computer system by saving a process under execution by a central processing unit (CPU) in response to an interrupt signal from the device and executing the interrupt processing for the interrupt signal. The processing corresponding to a device refers to a device driver and the operations of the device driver include a single-operation type driver concluded with one interrupt signal and a continuous-operation type driver allowing the occurrence of one interrupt signal to cause continuous generation of interrupt signals at regular time intervals, etc.
The single-operation type driver makes a change to a software-friendly interface in response to a register setting operation of a device. The single-operation type driver corresponds to a driver of a keyboard and a driver of a mouse, for example. The continuous-operation type driver sets the direct memory access (DMA) to perform data transfer in response to an interrupt signal of depletion or a buffer-full state of a buffer managed by First-In, First-Out (FIFO). The continuous-operation type driver corresponds to a driver of a display and a driver of a camera, for example.
The continuous-operation type driver often has a deadline time according to a specification of object data subject to the data transfer. For example, if a display is refreshed at 60 [Hz], the driver of the display has a specification of transferring data within the deadline time of about 0.017 [seconds].
Taking a camera driver as an example, a camera device is mounted as an input device on a terminal and input data from the camera device is accumulated one line at a time in a line buffer simultaneous with shooting. When ½ of the capacity of the line buffer is reached, the line buffer causes the interrupt processing to transfer the data accumulated in the line buffer to shared memory by using direct memory access (DMA) for image processing or compression.
In a single core processing system, a technique is known that switches execution of multiple processes in one CPU based on the processing times of the processes (see. e.g., Japanese Laid-Open Patent Publication No. 2005-285093).
In a multicore processor system, assignment of each driver is determined at the time of activation of the system. For example, a technique is known that defines one CPU in a multicore processor as a CPU dedicated to drivers so that when interrupt processing is generated, the processing can be executed without saving a process (see. e.g., Japanese Laid-Open Patent Publication No. H4-33130).
However, a process may have processing defined to disable interrupt. If interrupt processing of a driver occurs during the execution of the processing defined to disable interrupt, the interrupt processing is not immediately executed. Since a continuous-operation type driver has a deadline time as described above, if the processing time of the processing defined to disable interrupt is longer than the deadline time, it is problematic that the continuous-operation type driver cannot meet the deadline time.
For example, if a deadline time of a function of transferring line buffer data to a shared memory cannot be met as in the camera driver described above, data that cannot be transferred is lost and data of a shot image is omitted, resulting in a rough image.
As described, when a CPU dedicated to drivers is disposed in a multicore processor system, an overlap with the processing defined to disable interrupt does not occur. However, if multiple processes are activated in a CPU dedicated to processes and no driver is executed in the CPU dedicated to drivers, a load is problematically concentrated only to the CPU dedicated to processes.